A programmable logic controller (PLC) is a specialized computer control system configured to execute software which continuously gathers data on the state of input devices to control the state of output devices. A PLC typically includes three major components: a processor (which may include volatile memory), volatile memory comprising an application program, and one or more input/output (I/O) ports for connecting to other devices in the automation system.
PLCs are utilized in various industrial settings to control automation systems. Automation systems typically generate a large amount of data in their daily operations. This data may include, for example, sensor data, actuator and control program parameters, and information associated with service activities. However, conventional automation systems, and PLCs in particular, are not capable of fully utilizing this data. For example, in most systems, due to hardware and software limitations, only a small fraction of this data can be analyzed and stored. Massive amounts of irrelevant data may be produced while important data points are missed. Compression may be applied at the higher automation layers on unimportant data, while important data is lost while travelling through the automation layers. Moreover, even where there are attempts to avoid the loss of data, there may be significant demands placed on the rest of the computing infrastructure. For example, the PLC data processing may result in a high demand on the network bandwidth as well as storage capacity. Additionally, the context of data may be lost while data passed through automation system layers. This causes several undesired secondary effects on the automation system. For example, if data analytics are performed at higher automation layers based on low quality/fidelity data, important data may be lost causing the automation system to operate inefficiently or sub-optimally.
Insufficient data handling capabilities in automation systems also lead to various other concrete problems. If the resolution/sampling rate of data acquisition is not sufficient, many machine events may not be detected. For example, if stops of machine in millisecond range are missed by manufacturing intelligence, key performance indicator (e.g. Overall Equipment Effectiveness) calculation is inaccurate. Quality problems may not be immediately detected, as only very few process variables can be continuously monitored.
Additionally, in PLCs, context knowledge about the process available on control level is lost for the business analytics applications. A great deal of effort is required to rebuild such context knowledge at higher layers of the automation system. In particular, the realization of higher level software functionality in Supervisory Control and Data Acquisition (SCADA), Manufacturing Execution Systems (MES), or Enterprise Resource Planning (ERP) systems becomes much more complicated and costly. In turn, this leads to higher development and customization costs of these solutions. For example, consider a valve control program for controlling coolant flow until tank temperature reaches a certain level. One can infer that there has to be a certain correlation between coolant flow rate and temperature decrease (with some delay). To detect such correlations (which can be utilized for predictive process monitoring on business layer) a pairwise correlation analysis using hundreds of parameters is required.
Conventional PLCs also lack any ability of performing online analysis of control level data. Business analytics may be done offline and support retrospective analysis of past production (e.g., past batches). However, online analysis of production is only possible with some delay and therefore direct intervention into control based on the analysis is mostly not possible. Moreover, it is not possible to implement statistical quality and process control based on the hidden variables (i.e., data points that are internally used within the PLC, for example, to control a process or parameterize the sensors, actuators or control program) and control parameters because such data is not available outside the control layer. However, such data is important and can lead to early detection of quality issues.